#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    auto cameralist=QCameraInfo::availableCameras();
    //遍历容器打印信息
    for(QCameraInfo x:cameralist)
    {
        //qDebug()<<"摄像头描述信息: "<<x.description(); //跟windows设备管理器看到的一样
        //qDebug()<<"摄像头的设备名称: "<<x.deviceName(); //摄像头驱动程序打印出来的设备名称
        //在下拉框显示摄像头的设备名称
        ui->comboBox->addItem(x.deviceName());
    }

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_pushButton_clicked()
{
    //获取下拉框你选择的摄像头设备名称
    QString name=ui->comboBox->currentText();

    //创建摄像头对象
    camera=new QCamera(name.toUtf8());

    //创建窗口对象(实参把ui->widget作为参数)
    QVideoWidget *w=new QVideoWidget(ui->widget);
    //调整窗口大小
    w->resize(ui->widget->width(),ui->widget->height());
    //显示窗口
    w->show();

    //把摄像头对象跟窗口绑定
    camera->setViewfinder(w);

    //启动摄像头
    camera->start();
}

void MainWindow::on_pushButton_2_clicked()
{
    camera->stop();
}

void MainWindow::on_pushButton_3_clicked()
{
    if(!camera)
    {
        return;
    }
    static int num = 1;
    QCameraImageCapture imageCapture(camera);
    QString path = QString("C:/Users/NAIM/Desktop/%1.jpg").arg(num);
    imageCapture.capture(path);
    num++;
}
